interface ArcNode {
	adjvex: number,
	nextarc: ArcNode,
	weight: number
}

interface VNode<T> {
	data: T;
	firstArc: ArcNode;
}

interface AGraph<T> {
	adjlist: Array<VNode<T>>;
	n: number;
	e: number;
}

interface MNode<T> {
	data: T;
	no: number;
}

interface MGraph<T> {
	edge: Array<Array<number>>;
	n: number;
	e: number;
	vex: Array<MNode<T>>; //</MNode>
}

export {
	ArcNode,
	VNode,
	AGraph,
	MNode,
	MGraph
}